package cn.edu.xjtu.Util.ListNode;

public class ListNodeUtil {
  /**
   * 打印整个链表
   * 
   * @param head 链表的头节点
   */
  public static void print(ListNode head) {
    ListNode temp = head;
    while (temp != null) {
      System.out.println(temp.val);
      temp = temp.next;
    }
  }

  /**
   * 生成长度为n的链表
   * 
   * @param n 链表的长度n
   * @return 链表的头节点
   */
  public static ListNode generateLen(int n) {
    ListNode head = new ListNode(1);
    ListNode temp = head;
    for (int i = 0; i < n - 1; i++) {
      temp.next = new ListNode(i + 2);
      temp = temp.next;
    }
    return head;
  }

  /**
   * 根据传入的数组生成链表
   * 
   * @param nums 需要转换成链表的数组
   * @return 链表的头节点
   */
  public static ListNode generate(int[] nums) {
    if (nums.length == 0) {
      return null;
    }
    ListNode head = new ListNode(nums[0]);
    ListNode temp = head;
    for (int i = 1; i < nums.length; i++) {
      temp.next = new ListNode(nums[i]);
      temp = temp.next;
    }
    return head;
  }
}
